<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MTB CAT1 Peripheral driver library: LPComp       (Low Power Comparator)</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen_style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><a href="http://www.cypress.com/"><img alt="Logo" src="IFXCYP_one-line.png"/></a></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">MTB CAT1 Peripheral driver library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__group__lpcomp.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#groups">API Reference</a>  </div>
  <div class="headertitle">
<div class="title">LPComp (Low Power Comparator)</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">General Description</h2>
<p>Provides access to low-power comparators implemented using the fixed-function, LP comparator block that is present in the CAT1A and CAT1D devices. </p>
<p>The functions and other declarations used in this driver are in the cy_lpcomp.h file. You can include the cy_pdl.h to get access to all functions and declarations in the PDL.</p>
<p>Such comparators can perform a fast analog signal comparison of internal and external analog signals in all system power modes. The low-power comparator output can be inspected by the CPU, used as an interrupt/wakeup source to the CPU in Low-power mode (Sleep, Low-power Sleep or Deep-Sleep), used as a wakeup source to system resources in Hibernate mode, or fed to DSI as an asynchronous or synchronous signal (level or pulse).</p>
<h1><a class="anchor" id="group_lpcomp_section_Configuration_Considerations"></a>
Configuration Considerations</h1>
<p>To set up a low-power comparator, the inputs, output, mode, interrupts and the other configuration parameters are configured. Power the low-power comparator to start it operate.</p>
<p>The sequence recommended for the low-power comparator operation:</p>
<p>1) To initialize the driver, call the <a class="el" href="group__group__lpcomp__functions.html#gaaf6375b7632f40f6c91c2618cd825d05" title="Cy_LPComp_Init_Ext() is an extended version of existing function Cy_LPComp_Init(). ">Cy_LPComp_Init_Ext()</a> function providing the filled <a class="el" href="structcy__stc__lpcomp__config__t.html" title="The low-power comparator configuration structure. ">cy_stc_lpcomp_config_t</a> structure, the low-power comparator channel number and the low-power comparator registers structure pointer.</p>
<p>2) Optionally, configure the interrupt requests if the interrupt event triggering is needed. Use the <a class="el" href="group__group__lpcomp__functions.html#ga68279aa775be86f1906f07cb077e67e4" title="Configures which bits of the interrupt request register will trigger an interrupt event...">Cy_LPComp_SetInterruptMask()</a> function with the parameter for the mask available in the configuration file. Additionally, enable the Global interrupts and initialize the referenced interrupt by setting the priority and the interrupt vector using the <a class="el" href="group__group__sysint__functions.html#gab2ff6820a898e9af3f780000054eea5d">Cy_SysInt_Init()</a> function of the sysint driver.</p>
<p>3) Configure the inputs and the output using the <a class="el" href="group__group__gpio__functions__init.html#gad61553f65d4e6bd827eb6464a7913461">Cy_GPIO_Pin_Init()</a> functions of the GPIO driver. High Impedance Analog drive mode is for the inputs and Strong drive mode - for the output. Use the <a class="el" href="group__group__lpcomp__functions.html#ga86039c548754145643a780320928c8f0" title="Sets the comparator input sources. ">Cy_LPComp_SetInputs()</a> function to connect the comparator inputs to the dedicated IO pins, AMUXBUSA/AMUXBUSB or Vref: </p><div class="image">
<img src="lpcomp_inputs.png" alt="lpcomp_inputs.png"/>
</div>
<p>4) Power on the comparator using the <a class="el" href="group__group__lpcomp__functions.html#gade6b4331e7ef29b8a6e05e8f8dfe6247" title="Cy_LPComp_Enable_Ext() is an extended version of existing function Cy_LPComp_Enable(). ">Cy_LPComp_Enable_Ext()</a> function.</p>
<p>5) The comparator output can be monitored using the <a class="el" href="group__group__lpcomp__functions.html#gadc91cd80afbb17ee87fbd38dd963ec2e" title="This function returns a non-zero value when the voltage connected to the positive input is greater th...">Cy_LPComp_GetCompare()</a> function or using the low-power comparator interrupt (if the interrupt is enabled).</p>
<dl class="section note"><dt>Note</dt><dd>The interrupt is not cleared automatically. It is the user's responsibility to do that. The interrupt is cleared by writing "1" in the corresponding interrupt register bit position. The preferred way to clear interrupt sources is using the <a class="el" href="group__group__lpcomp__functions.html#ga5197f02cfc236a0280d7d18e52cfb916" title="Clears low-power comparator interrupts by setting each bit. ">Cy_LPComp_ClearInterrupt()</a> function.</dd>
<dd>
Individual comparator interrupt outputs are ORed together as a single asynchronous interrupt source before it is sent out and used to wake up the system in the low-power mode. For CAT1A, CAT1D devices, the individual comparator interrupt is masked by the INTR_MASK register. The masked result is captured in the INTR_MASKED register. Writing "1" to the INTR register bit will clear the interrupt.</dd></dl>
<h1><a class="anchor" id="group_lpcomp_lp"></a>
Low Power Support</h1>
<p>The low-power comparator provides callback functions to facilitate the low-power mode transition. Call <a class="el" href="group__group__lpcomp__functions__syspm__callback.html#ga1db6050e8d02b0117098b1afcf485d1a">Cy_LPComp_DeepSleepCallback</a> during execution of <a class="el" href="group__group__syspm__functions__power.html#ga5150c28fe4d2626720c1fbf74b3111ca">Cy_SysPm_CpuEnterDeepSleep</a>. Call <a class="el" href="group__group__lpcomp__functions__syspm__callback.html#gac2cc38b002d8336bc1c364e70b2d5534">Cy_LPComp_HibernateCallback</a> during execution of <a class="el" href="group__group__syspm__functions__power.html#gae97647a28c370674ba57d451d21d1c51">Cy_SysPm_SystemEnterHibernate</a>. To trigger callback execution, register the callback before calling the mode transition function. Refer to <a class="el" href="group__group__syspm.html">SysPm (System Power Management)</a> driver for more information about low-power mode transition.</p>
<p>The example below shows the entering Hibernate mode. The positive low-power comparator input connects to the dedicated GPIO pin and the negative low-power comparator input connects to the local reference. The LED blinks twice after a device reset and goes into Hibernate mode. When the voltage on the positive input is greater than the local reference voltage (0.45V - 0.75V), the device wakes up and the LED starts blinking. <br />
Section of declarations: </p><div class="fragment"><div class="line"><span class="comment">/* Global declarations */</span></div><div class="line"><span class="preprocessor">#define MYLPCOMP_HW      LPCOMP</span></div><div class="line"><span class="preprocessor">#define MYLPCOMP_CHANNEL CY_LPCOMP_CHANNEL_0</span></div><div class="line"><span class="preprocessor">#define LED_RED_PORT     GPIO_PRT0</span></div><div class="line"><span class="preprocessor">#define LED_RED_PIN      3U</span></div><div class="line"></div><div class="line"><span class="comment">/* Configure a low-power comparator structure to operate in ULP mode */</span></div><div class="line"><span class="keyword">const</span> <a class="code" href="structcy__stc__lpcomp__config__t.html">cy_stc_lpcomp_config_t</a> MYLPCOMP_config =</div><div class="line">{</div><div class="line">    .<a class="code" href="structcy__stc__lpcomp__config__t.html#a480331bf074a8da85d644604ccbd4be1">outputMode</a> = <a class="code" href="group__group__lpcomp__enums.html#ggabdb04cbeeda3390491f1927ec54754d9adad19119afec1d0ed744964d23b0f738">CY_LPCOMP_OUT_DIRECT</a>,</div><div class="line">    .hysteresis = <a class="code" href="group__group__lpcomp__enums.html#ggada8e5d16a9fcb0b9cbad23449cdf51aba912f47c14d6cad0f5e80d5d6bda30cd1">CY_LPCOMP_HYST_ENABLE</a>,</div><div class="line">    .power = <a class="code" href="group__group__lpcomp__enums.html#gga807c85d836c327c00a8a5ee52d6a93e6a507745f1da8cbc248a632429846d2e81">CY_LPCOMP_MODE_ULP</a>,</div><div class="line">    .intType = <a class="code" href="group__group__lpcomp__enums.html#ggab12edb4e44ead54254de2168b92b4213aa267c82b79a44c8ba929b8cb9b32c749">CY_LPCOMP_INTR_DISABLE</a>,</div><div class="line">};</div><div class="line"></div><div class="line"><span class="comment">/* Set the syspm callback parameters */</span></div><div class="line"><span class="keyword">static</span> <a class="code" href="structcy__stc__syspm__callback__params__t.html">cy_stc_syspm_callback_params_t</a> LPCompHibernateCallbackParams =</div><div class="line">{</div><div class="line">    MYLPCOMP_HW,</div><div class="line">    NULL</div><div class="line">};</div><div class="line"></div><div class="line"><span class="comment">/* Configure the syspm callback structure */</span></div><div class="line"><span class="keyword">static</span> <a class="code" href="structcy__stc__syspm__callback__t.html">cy_stc_syspm_callback_t</a> LPCompHibernateCallback =</div><div class="line">{</div><div class="line">    &amp;<a class="code" href="group__group__lpcomp__functions__syspm__callback.html#gac2cc38b002d8336bc1c364e70b2d5534">Cy_LPComp_HibernateCallback</a>,</div><div class="line">    <a class="code" href="group__group__syspm__data__enumerates.html#gga8c2960c0164ead1cfa86e7d6846b6ff0a613e2f83e3ab88e3569cf34ff0fa5912">CY_SYSPM_HIBERNATE</a>,</div><div class="line">    0u,</div><div class="line">    &amp;LPCompHibernateCallbackParams,</div><div class="line">    NULL,</div><div class="line">    NULL,</div><div class="line">    0</div><div class="line">};</div><div class="line"></div><div class="line"><span class="comment">/* The comparator context structure */</span></div><div class="line"><span class="keyword">static</span> <a class="code" href="structcy__stc__lpcomp__context__t.html">cy_stc_lpcomp_context_t</a> lpcomp_context;</div></div><!-- fragment --><p>Section of application code: </p><div class="fragment"><div class="line">    <span class="comment">/* The App code */</span></div><div class="line">    <span class="keywordflow">if</span>(<a class="code" href="group__group__syspm__functions__iofreeze.html#gaf741ea459227eeb4528221653b5fde4a">Cy_SysPm_IoIsFrozen</a>())</div><div class="line">    {</div><div class="line">        <span class="comment">/* Restore the I/O configuration */</span></div><div class="line">        <a class="code" href="group__group__syspm__functions__iofreeze.html#ga5df20917d995755606672fac961e8e9b">Cy_SysPm_IoUnfreeze</a>();</div><div class="line">    }</div><div class="line"></div><div class="line">    <span class="comment">/* Initialize the low-power comparator */</span></div><div class="line">    (void)<a class="code" href="group__group__lpcomp__functions.html#gaaf6375b7632f40f6c91c2618cd825d05">Cy_LPComp_Init_Ext</a>(MYLPCOMP_HW, MYLPCOMP_CHANNEL, &amp;MYLPCOMP_config, &amp;lpcomp_context);</div><div class="line"></div><div class="line">    <span class="comment">/* Enable the local reference for low-power comparator inputN */</span></div><div class="line">    <a class="code" href="group__group__lpcomp__functions.html#gaaacaaed309a56a6490306af40822788c">Cy_LPComp_UlpReferenceEnable</a>(MYLPCOMP_HW);</div><div class="line">    <a class="code" href="group__group__lpcomp__functions.html#gaa6a135c020dbeb79383da693f95a5ee7">Cy_LPComp_ConnectULPReference</a>(MYLPCOMP_HW, MYLPCOMP_CHANNEL);</div><div class="line"></div><div class="line">    <span class="comment">/* Initialize low-power comparator inputs */</span></div><div class="line">    <a class="code" href="group__group__lpcomp__functions.html#ga86039c548754145643a780320928c8f0">Cy_LPComp_SetInputs</a>(MYLPCOMP_HW, MYLPCOMP_CHANNEL, <a class="code" href="group__group__lpcomp__enums.html#gga3064b8f5a4564e4d002df51ee8f96962aa3e2650fb3321ac2ce8ebeae72c501d4">CY_LPCOMP_SW_GPIO</a>, <a class="code" href="group__group__lpcomp__enums.html#gga3064b8f5a4564e4d002df51ee8f96962a45d643833ed94cbff8f5ef1debc63ce0">CY_LPCOMP_SW_LOCAL_VREF</a>);</div><div class="line"></div><div class="line">    <span class="comment">/* Enable the low-power comparator */</span></div><div class="line">    <a class="code" href="group__group__lpcomp__functions.html#gade6b4331e7ef29b8a6e05e8f8dfe6247">Cy_LPComp_Enable_Ext</a>(MYLPCOMP_HW, MYLPCOMP_CHANNEL, &amp;lpcomp_context);</div><div class="line"></div><div class="line">    <span class="comment">/* Initialize the LED to Strong drive mode */</span></div><div class="line">    <a class="code" href="group__group__gpio__functions__gpio.html#ga97e64dc8c45e7cd73e3012100d03b1fd">Cy_GPIO_SetDrivemode</a>(LED_RED_PORT, LED_RED_PIN, <a class="code" href="group__group__gpio__drive_modes.html#gacebd8bea6222d742bdfbfd86dabab940">CY_GPIO_DM_STRONG_IN_OFF</a>);</div><div class="line"></div><div class="line">    <span class="comment">/* Blink the LED twice */</span></div><div class="line">    <span class="keywordflow">for</span> (uint32 i = 1UL; i &lt;= 4UL; i++)</div><div class="line">    {</div><div class="line">        <a class="code" href="group__group__gpio__functions__gpio.html#ga35373fa4e131e73153422ef0138bb50b">Cy_GPIO_Inv</a>(LED_RED_PORT, LED_RED_PIN);</div><div class="line">        <a class="code" href="group__group__syslib__functions.html#gaad1c32546fdb0e3c6fa8b46fb95843b5">Cy_SysLib_Delay</a>(200<span class="comment">/*msec*/</span>);</div><div class="line">    }</div><div class="line"></div><div class="line">    <span class="comment">/* Set the Hibernate wake-up source to the low-power comparator high output */</span></div><div class="line">    <a class="code" href="group__group__syspm__functions__power.html#ga2540970e6c27efa25752efc43da0d622">Cy_SysPm_SetHibernateWakeupSource</a>(<a class="code" href="group__group__syspm__data__enumerates.html#gga369b76c2e602edf09ede9f8f804e066ea5dbe774244382f2a853050d758a58219">CY_SYSPM_HIBERNATE_LPCOMP0_HIGH</a>);</div><div class="line"></div><div class="line">    <span class="comment">/* Register a new syspm callback */</span></div><div class="line">    (void)<a class="code" href="group__group__syspm__functions__callback.html#ga0d58b00c8dc764a6371590f70e2f73c7">Cy_SysPm_RegisterCallback</a>(&amp;LPCompHibernateCallback);</div><div class="line"></div><div class="line">    <span class="comment">/* Enter Hibernate mode */</span></div><div class="line">    <a class="code" href="group__group__syspm__functions__power.html#gae97647a28c370674ba57d451d21d1c51">Cy_SysPm_SystemEnterHibernate</a>();</div></div><!-- fragment --><h1><a class="anchor" id="group_lpcomp_more_information"></a>
More Information</h1>
<p>For a detailed description of the registers, refer to the appropriate device technical reference manual (TRM).</p>
<h1><a class="anchor" id="group_lpcomp_Changelog"></a>
Changelog</h1>
<table class="doxtable">
<tr>
<th>Version</th><th>Changes</th><th>Reason for Change </th></tr>
<tr>
<td>1.80.1 </td><td>Added the note about using <a class="el" href="group__group__lpcomp__functions.html#gaaacaaed309a56a6490306af40822788c">Cy_LPComp_UlpReferenceEnable()</a> for the comparator in ULP mode <a class="el" href="group__group__lpcomp__enums.html#ga807c85d836c327c00a8a5ee52d6a93e6">cy_en_lpcomp_pwr_t</a>. </td><td>Documentation enhancement.  </td></tr>
<tr>
<td>1.80 </td><td>Fix in hibernate callback function for CAT1D devices. </td><td>The low power comparator was unable to wake-up the system from hibernate state.  </td></tr>
<tr>
<td>1.70 </td><td>Added support for CAT1B and CAT1D devices. </td><td>Support of new IP version.  </td></tr>
<tr>
<td rowspan="2">1.60 </td><td>Fix in hibernate callback function. </td><td>The low power comparator was unable to wake-up the system from hibernate state.  </td></tr>
<tr>
<td>Documentation update and clarification. </td><td>The code snippet in chapter Low Power Support was updated after validation.  </td></tr>
<tr>
<td rowspan="2">1.50 </td><td>Minor improvement in implementation of disabling functionality for the comparator. </td><td>Power drive mode for the comparator is restored to the level before disabling, instead of initial level.  </td></tr>
<tr>
<td>Documented MISRA C-2012 violation of the Rule 10.3. </td><td>MISRA C-2012 compliance.  </td></tr>
<tr>
<td>1.40 </td><td>Introduced an extended versions of the existing functions with a pointer to the context structure allocated by the user:<ul>
<li><a class="el" href="group__group__lpcomp__functions.html#gaaf6375b7632f40f6c91c2618cd825d05">Cy_LPComp_Init_Ext()</a>,</li>
<li><a class="el" href="group__group__lpcomp__functions.html#gade6b4331e7ef29b8a6e05e8f8dfe6247">Cy_LPComp_Enable_Ext()</a>,</li>
<li><a class="el" href="group__group__lpcomp__functions.html#ga0bed47dc7996b32c37537c238e963db6">Cy_LPComp_Disable_Ext()</a>,</li>
<li><a class="el" href="group__group__lpcomp__functions.html#gaccc7a72f8456824bab3793c74d4604e9">Cy_LPComp_SetInterruptTriggerMode_Ext()</a>,</li>
<li><a class="el" href="group__group__lpcomp__functions.html#ga125ecf3021339e4ffae3200f6197079c">Cy_LPComp_SetPower_Ext()</a>  </li>
</ul>
</td><td><ul>
<li>Improved returning of the comparator from disabled to operational state with restoring power drive and interrupt edge-detect modes, configured before disable.</li>
<li>Improved thread safe implementation of the PDL.   </li>
</ul>
</td></tr>
<tr>
<td>1.30 </td><td>Fixed/documented MISRA 2012 violations. </td><td>MISRA 2012 compliance.  </td></tr>
<tr>
<td>1.20.1 </td><td>Minor documentation updates. </td><td>Documentation enhancement.  </td></tr>
<tr>
<td rowspan="2">1.20 </td><td>Flattened the organization of the driver source code into the single source directory and the single include directory.  </td><td>Driver library directory-structure simplification.  </td></tr>
<tr>
<td>Added register access layer. Use register access macros instead of direct register access using de-referenced pointers. </td><td>Makes register access device-independent, so that the PDL does not need to be recompiled for each supported part number.  </td></tr>
<tr>
<td>1.10.1 </td><td>Added Low Power Callback section </td><td>Documentation update and clarification  </td></tr>
<tr>
<td>1.10 </td><td>The CY_WEAK keyword is removed from <a class="el" href="group__group__lpcomp__functions__syspm__callback.html#ga1db6050e8d02b0117098b1afcf485d1a" title="This function checks the current low-power comparator power mode and disables the low-power comparato...">Cy_LPComp_DeepSleepCallback()</a> and <a class="el" href="group__group__lpcomp__functions__syspm__callback.html#gac2cc38b002d8336bc1c364e70b2d5534" title="This function checks the current low-power comparator power mode and disables the low-power comparato...">Cy_LPComp_HibernateCallback()</a> functions<br />
 Added input parameter validation to the API functions. </td><td></td></tr>
<tr>
<td>1.0 </td><td>Initial version </td><td></td></tr>
</table>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
API Reference</h2></td></tr>
<tr class="memitem:group__group__lpcomp__macros"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__lpcomp__macros.html">Macros</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__group__lpcomp__functions"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__lpcomp__functions.html">Functions</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__group__lpcomp__data__structures"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__lpcomp__data__structures.html">Data Structures</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__group__lpcomp__enums"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__lpcomp__enums.html">Enumerated Types</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part
<div id="nav-path" class="navpath">
    <ul>
        <li class="footer">
            Generated for <b>MTB CAT1 Peripheral driver library</b> by <b>Cypress Semiconductor Corporation</b>.
            All rights reserved.
        </li>
    </ul>
</div>
-->
</body>
</html>
